home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
AMIGA
/
AMICUS
/
AMICUS05.ADF
/
menudemo
/
init.c
< prev
next >
Wrap
C/C++ Source or Header
|
1986-01-15
|
3KB
|
122 lines
/* menu demo: init.c AmigaLink 1/25/86 */
#include "standard.h"
#include "workbench/startup.h"
#define MENUPROJECT 0
#define MENUEDIT 1
#define MENUSTYLES 2
#define MENUCOLORS 3
#define BLUE 0
#define WHITE 1
#define BLACK 2
#define RED 3
extern struct Library *OpenLibrary();
extern struct MsgPort consoleMsgPort;
extern struct MenuItem styleitems[];
extern ULONG *IntuitionBase;
extern ULONG *DosBase;
extern ULONG *GfxBase;
extern ULONG *DiskfontBase;
extern ULONG *IconBase;
char *filename;
char filebuffer[31];
struct Window *OpenWindow();
struct Window *window;
struct IntuiMessage *message;
LONG SaveDir;
struct NewWindow nw = {
10, 10, /* starting position (left,top) */
600,100, /* width, height */
BLUE,WHITE, /* detailpen, blockpen */
CLOSEWINDOW|REFRESHWINDOW|MENUPICK, /* flags for idcmp */
WINDOWDEPTH|WINDOWSIZING|WINDOWDRAG|WINDOWCLOSE|SIMPLE_REFRESH|ACTIVATE, /* window gadget flags */
NULL, /* pointer to 1st user gadget */
NULL, /* pointer to user check */
"Demo V1.0", /* title */
NULL, /* pointer to window screen */
NULL, /* pointer to super bitmap */
100,45, /* min width, height */
640,200, /* max width, height */
WBENCHSCREEN};
startup(wbmessage,argv)
struct WBStartup *wbmessage;
char *argv[];
{
LONG olddir;
struct WBArg *arg;
if((IntuitionBase=OpenLibrary("intuition.library",0)) == NULL)exit(-1);
if((DosBase = OpenLibrary(DOSNAME, 0)) == NULL) exit(-1);
if((IconBase = OpenLibrary("icon.library", 0)) == NULL) exit(-1);
if((GfxBase = OpenLibrary("graphics.library", 0)) ==NULL) exit(-1);
window=OpenWindow(&nw);
CDOpen(window); /* open the console device */
SetWindowTitles(window,-1,"Demo Are Fun");
ShowTitle(window->WScreen,TRUE);
SetWindowTitles(window,-1,"Demo Program");
CDPutStr("\014Demo Program\r\n");
while(CDMayGetChar() != (-1));
filename= &filebuffer[0];
SetDrMd(window->RPort,JAM1);
SetAPen(window->RPort,BLACK);
SetBPen(window->RPort,WHITE);
initMenus(window); /* start up the menu system */
/* startup & argument read varies depending on how we start */
if (((ULONG)argv == 0) && (wbmessage->sm_NumArgs > 1)) { /* started from wb */
arg=(wbmessage->sm_ArgList);
if (wbmessage->sm_NumArgs > 1) {
arg++;
stringcopy(filebuffer,arg->wa_Name);
SaveDir=arg->wa_Lock;
printf("loading %s\n",filebuffer);
}
else { /* find the current directory to use as save directory */
SaveDir=arg->wa_Lock;
}
}
else if (((ULONG)argv !=0) && ((ULONG)wbmessage>1)) { /* started from CLI */
stringcopy(filebuffer,argv[1]);
printf("loading %s\n",filebuffer);
}
}
stringcopy(dest, source)
char *dest;
char *source;
{
char *saved=dest;
char *saves=source;
int i=0;
while (( i++ <30 )&&( *dest++ = *source++ ));
*dest=0;
dest=saved;
source=saves;
return(0);
}